Package test.common

Source Code of test.common.LocaleSwitcher$LocaleInfo

package test.common;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Locale;

import javax.swing.JComboBox;
import javax.swing.SwingUtilities;

public class LocaleSwitcher {
  static class LocaleInfo {
    Locale locale;

    String displayName;

    public LocaleInfo(Locale locale, String displayName) {
      this.locale = locale;
      this.displayName = displayName;
    }

    @Override
    public String toString() {
      return displayName;
    }
  }

  public interface LocaleCallback {
    public void onLocaleSelected(Locale selected);
  }

  public static JComboBox getLocaleSwitcher(final LocaleCallback callback) {
    Object[] locales = new Object[] {
        new LocaleInfo(new Locale("en", "US"), "English"),
        new LocaleInfo(new Locale("iw", "IL"), "Hebrew") };
    final JComboBox result = new JComboBox(locales);
    result.setSelectedIndex(0);
    result.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        SwingUtilities.invokeLater(new Runnable() {
          @Override
          public void run() {
            LocaleInfo selected = (LocaleInfo) result
                .getSelectedItem();
            callback.onLocaleSelected(selected.locale);
          }
        });
      }
    });
    return result;
  }
}
TOP

Related Classes of test.common.LocaleSwitcher$LocaleInfo

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.